/**
 * 免登录js，依赖于jquery-->constant.js-->public.js
 * 1.先判断是否登录，如果没有登录则获取code，然后获取openid，传入后台判断是否绑定，如果是绑定过则将用户信息放入session,进而实现免登录（由后台完成）
 * 2.如果登录过，什么也不做. 注意：凡是引入了此js的页面，如果是绑定过的，都会强制做免登录操作！
 */
(function() {
	// 首先判断是否是微信环境
	if (isWeiXin()) {
		// 判断是否是第一次进来，只在第一次进行判断
		if(!sessionStorage.getItem("secondLogin")){
		// 判断是否登录,分别执行对应的回调
		TestUserLogin(loginedCallback, nologinCallback);
		}
	}
})();
/*
 * 已登录什么也不做
 */
function loginedCallback() {
}
/*
 * 未登录查询openid，如果已绑定则让其免登录
 */
function nologinCallback() {
	try {
		var oppenId = '1';
		var code = Util.browser.getParameter("code"); // 获取http://www.10085.cn/web85/h5/mallregwx.html页面返回过来的code参数
		// 第一次进入，先去微信服务器拿code
		if (!code) {
			// 这个url是固定的，无需修改！
			var firstCallback = $.CONSTANT.WECHAT_CALLBACK_URL;
			// 获取当前页面的url，这也是是最终要跳到的url，即跳回自身。会带上code参数，key为code。
			// 首先要判断是否带有查询参数，如果有还要继续传递下去
			var finalCallbackUrl = window.location.href;
			//在微信文章底部阅读原文中点击，会给末尾加上/#rd参数，会导致跳转之后变为null的bug。这里把它截取掉
			if(finalCallbackUrl.indexOf("#")>-1){
				finalCallbackUrl = finalCallbackUrl.substring(0,finalCallbackUrl.indexOf("#"));
			}
			if (window.location.search) {
				// 因为&符号传递不过去，这里用@@代替，在firstCallback这个页面中会还原成&
				finalCallbackUrl += "@@code=";
			} else {
				finalCallbackUrl += "?code=";
			}
			var gotoUrl = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9bc4c57ebf9127eb&redirect_uri='
					+ firstCallback
					+ "?callbackUrl="
					+ encodeURIComponent(finalCallbackUrl)
					+ '&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect';
			document.location.href = gotoUrl;
		}
		// 此时是第二次跳回到此页面，已经带上了code参数，拿出来传到后台，查询openid
		if (code) {
			srvMap.add("query-user_openId", "",
					"front/sh/active!getUserOpenId?uid=w002&code=" + code);
			Util.ajax.postJson(srvMap.get("query-user_openId"), "", function(
					data, f) {
				oppenId = data.openid;
				if (oppenId !== "1") {
					// 查到了openid，使其登录
					srvMap.add("make-login", "",
							"front/sh/login!wxLogin?uid=w001");
					Util.ajax.postJson(srvMap.get("make-login"),"",function(loginData,loginFlag){
						if(loginFlag){
							//如果登录失败
							if(loginData.returnCode!=="1"){
								//将失败标志存放入sessionStorage
								sessionStorage.setItem("secondLogin",true);
							}
						}
					});
				}
			});
		}
	} catch (e) {
		console.log(e);
	}
}

/**
 * 判断是不是微信环境
 */
function isWeiXin() {
	var ua = window.navigator.userAgent.toLowerCase();
	if (ua.match(/MicroMessenger/i) === 'micromessenger') {
		return true;
	} else {
		return false;
	}
}